home *** CD-ROM | disk | FTP | other *** search
/ Sports Illustrated for Kids - Awesome Athletes! / Sports Illustrated for Kids - Awesome Athletes!.iso / th.dir / 00004_QTVR-PC.ls < prev    next >
Encoding:
Text File  |  1996-04-18  |  7.2 KB  |  263 lines

  1. on WIN_initVR
  2.   global gPathName, gLastTimeRollover, gPanoFrame, gPanoCallBackFactory, gTestCallbackFactory
  3.   set gPathName to EMPTY
  4.   set gLastTimeRollover to 0
  5.   set gPanoFrame to EMPTY
  6.   openXLib("QTVRW.QTC")
  7.   set tInitObj to qtvrw(mnew, "Nav")
  8.   if objectp(tInitObj) then
  9.     tInitObj(mdispose)
  10.   end if
  11.   set gPanoCallBackFactory to thCallbacks(mnew)
  12. end
  13.  
  14. on WIN_cleanUpVR
  15.   global gPanoCallBackFactory, gTestCallbackFactory
  16.   ClosePanoMovie()
  17.   CloseNavMovie()
  18.   closeXLib("QTVRW.QTC")
  19.   if objectp(gPanoCallBackFactory) then
  20.     gPanoCallBackFactory(mdispose)
  21.   end if
  22. end
  23.  
  24. on WIN_OpenNavMovie pFilename, pSpriteNum, pShowOnOpen
  25.   global gNavMovieObj
  26.   CloseNavMovie()
  27.   set gNavMovieObj to qtvrw(mnew, "Nav")
  28.   if not objectp(gNavMovieObj) then
  29.     put "Unable to create new Nav instance"
  30.     beep()
  31.     exit
  32.   end if
  33.   set tResultCode to gNavMovieObj(mOpenMovie, pFilename, the left of sprite pSpriteNum & "," & the top of sprite pSpriteNum)
  34.   if tResultCode = 0 then
  35.     put "Unable to open navmovie"
  36.     gNavMovieObj(mdispose)
  37.     beep()
  38.     exit
  39.   end if
  40.   if pShowOnOpen then
  41.     gNavMovieObj(mUpdate)
  42.   end if
  43. end
  44.  
  45. on WIN_ShowNavMovie
  46.   global gNavMovieObj
  47.   if objectp(gNavMovieObj) then
  48.     gNavMovieObj(mUpdate)
  49.   end if
  50. end
  51.  
  52. on WIN_SetNavMovieView pHPan, pVPan
  53.   global gNavMovieObj
  54.   if objectp(gNavMovieObj) then
  55.     gNavMovieObj(mSetHPanAngle, string(pHPan))
  56.     gNavMovieObj(mSetVPanAngle, string(pVPan))
  57.   end if
  58. end
  59.  
  60. on WIN_CloseNavMovie
  61.   global gNavMovieObj
  62.   if objectp(gNavMovieObj) then
  63.     gNavMovieObj(mdispose)
  64.   end if
  65. end
  66.  
  67. on WIN_NavFrameScript pSpriteNum
  68.   global gNavMovieObj
  69.   if objectp(gNavMovieObj) then
  70.     if rollOver(pSpriteNum) then
  71.       gNavMovieObj(mMouseOver)
  72.       cursor(200)
  73.       cursor(-1)
  74.     else
  75.       gNavMovieObj(mIdle)
  76.     end if
  77.   end if
  78. end
  79.  
  80. on WIN_OpenPanoMovie pFilename, pSpriteNum, pShowOnOpen
  81.   global gPanoMovieObj, gPathName
  82.   ClosePanoMovie()
  83.   set gPanoMovieObj to qtvrw(mnew, "Pan")
  84.   if not objectp(gPanoMovieObj) then
  85.     put "Unable to create new Pan instance"
  86.     beep()
  87.     exit
  88.   end if
  89.   set tResultCode to gPanoMovieObj(mOpenMovie, pFilename, the left of sprite pSpriteNum & "," & the top of sprite pSpriteNum)
  90.   if tResultCode = 0 then
  91.     put "Unable to open panomovie"
  92.     gPanoMovieObj(mdispose)
  93.     beep()
  94.     exit
  95.   end if
  96.   set gPathName to ExtractPathName(pFilename)
  97.   InitPanoCallbacks()
  98.   if pShowOnOpen then
  99.     gPanoMovieObj(mUpdate)
  100.   end if
  101. end
  102.  
  103. on WIN_InitPanoCallbacks
  104.   global gPanoMovieObj, gPanoCallBackFactory
  105.   if objectp(gPanoMovieObj) and objectp(gPanoCallBackFactory) then
  106.     gPanoMovieObj(mSetMouseOverCallback, gPanoCallBackFactory, EMPTY)
  107.     gPanoMovieObj(mSetRolloverCallback, gPanoCallBackFactory, "thRolloverHandler")
  108.     gPanoMovieObj(mSetMouseDownCallback, gPanoCallBackFactory, EMPTY)
  109.     gPanoMovieObj(mSetPanZoomStartCallback, gPanoCallBackFactory, EMPTY)
  110.     gPanoMovieObj(mSetMouseStillDownCallback, gPanoCallBackFactory, EMPTY)
  111.     gPanoMovieObj(mSetNodeLeaveCallback, gPanoCallBackFactory, EMPTY)
  112.   end if
  113. end
  114.  
  115. on WIN_ShowPanoMovie pQuality
  116.   global gPanoMovieObj
  117.   if objectp(gPanoMovieObj) then
  118.     if not voidp(pQuality) then
  119.       gPanoMovieObj(mSetQuality, string(pQuality))
  120.     end if
  121.     gPanoMovieObj(mUpdate)
  122.   end if
  123. end
  124.  
  125. on WIN_SetPanoNode pNodeID, pUpdate, pQuality
  126.   global gPanoMovieObj
  127.   if objectp(gPanoMovieObj) then
  128.     if not voidp(pNodeID) then
  129.       gPanoMovieObj(mSetNodeID, integer(pNodeID))
  130.     end if
  131.     if not voidp(pQuality) then
  132.       gPanoMovieObj(mSetQuality, string(pQuality))
  133.     end if
  134.     if pUpdate then
  135.       gPanoMovieObj(mUpdate)
  136.     end if
  137.   end if
  138. end
  139.  
  140. on WIN_SwingPanoMovie pHPan, pVPan, pZoom, pSwingSpeed, pSwingQuality, pFinalQuality
  141.   global gPanoMovieObj
  142.   if objectp(gPanoMovieObj) then
  143.     gPanoMovieObj(mSetZoomAngle, string(pZoom))
  144.     gPanoMovieObj(mSetVPanAngle, string(pVPan))
  145.     gPanoMovieObj(mSetHPanAngle, string(pHPan))
  146.     gPanoMovieObj(mSetQuality, string(pSwingQuality))
  147.     gPanoMovieObj(mSetTransitionMode, "swing")
  148.     gPanoMovieObj(mSetTransitionSpeed, string(pSwingSpeed))
  149.     gPanoMovieObj(mUpdate)
  150.     gPanoMovieObj(mSetTransitionMode, "normal")
  151.     if pFinalQuality <> pSwingQuality then
  152.       gPanoMovieObj(mSetQuality, string(pSwingQuality))
  153.       gPanoMovieObj(mUpdate)
  154.     end if
  155.   end if
  156. end
  157.  
  158. on WIN_SetPanoMovieView pHPan, pVPan, pZoom, pQuality
  159.   global gPanoMovieObj
  160.   if objectp(gPanoMovieObj) then
  161.     gPanoMovieObj(mSetZoomAngle, string(pZoom))
  162.     gPanoMovieObj(mSetVPanAngle, string(pVPan))
  163.     gPanoMovieObj(mSetHPanAngle, string(pHPan))
  164.     if not voidp(pQuality) then
  165.       gPanoMovieObj(mSetQuality, string(pQuality))
  166.     end if
  167.     gPanoMovieObj(mUpdate)
  168.   end if
  169. end
  170.  
  171. on WIN_ClosePanoMovie
  172.   global gPanoMovieObj
  173.   if objectp(gPanoMovieObj) then
  174.     gPanoMovieObj(mdispose)
  175.   end if
  176. end
  177.  
  178. on WIN_PanoFrameScript pSpriteNum
  179.   global gLastTimeRollover, gPanoMovieObj, gLastPanoMovieData, gPathName, gNavMovieObj, gPanoFrame
  180.   if rollOver(pSpriteNum) then
  181.     if objectp(gPanoMovieObj) then
  182.       set tMouseOverResult to gPanoMovieObj(mMouseOver)
  183.       if tMouseOverResult <> 0 then
  184.         set tAction to item 1 of tMouseOverResult
  185.         if tAction = "jump" then
  186.           put item 2 of tMouseOverResult into field "Current Node ID"
  187.         else
  188.           if tAction = "stil" then
  189.             put item 2 of tMouseOverResult into field "Current Hot Spot ID"
  190.           else
  191.             if tAction = "navg" then
  192.               set tHotSpotID to item 2 of tMouseOverResult
  193.               put tHotSpotID into field "Current Hot Spot ID"
  194.               set tViewAngles to gPanoMovieObj(mGetNavgViewAngles)
  195.               set tFileName to gPanoMovieObj(mGetHotSpotName)
  196.               OpenNavMovie(gPathName & "\" & tFileName, 2, 0)
  197.               if objectp(gNavMovieObj) then
  198.                 set gPanoFrame to marker(0)
  199.                 go("Object From Pano")
  200.                 SetNavMovieView(item 1 of tViewAngles, item 2 of tViewAngles)
  201.                 ShowNavMovie()
  202.               end if
  203.             else
  204.               if tAction = "misc" then
  205.                 put item 2 of tMouseOverResult into field "Current Hot Spot ID"
  206.               else
  207.                 if tAction = "undf" then
  208.                   hitHotspot(item 2 of tMouseOverResult)
  209.                 else
  210.                   if tAction = "pan " then
  211.                   end if
  212.                 end if
  213.               end if
  214.             end if
  215.           end if
  216.         end if
  217.         set gLastTimeRollover to 1
  218.       else
  219.         cursor(200)
  220.         cursor(-1)
  221.         set gLastTimeRollover to 0
  222.       end if
  223.     end if
  224.   else
  225.     if gLastTimeRollover then
  226.       cursor(200)
  227.       cursor(-1)
  228.       set gLastTimeRollover to 0
  229.       if objectp(gPanoMovieObj) then
  230.         gPanoMovieObj(mIdle)
  231.       end if
  232.     end if
  233.   end if
  234. end
  235.  
  236. on WIN_PanoGetHPanAngle
  237.   return gPanoMovieObj(mGetHPanAngle)
  238. end
  239.  
  240. on WIN_PanoGetVPanAngle
  241.   return gPanoMovieObj(mGetVPanAngle)
  242. end
  243.  
  244. on WIN_PanoGetZoomAngle
  245.   return gPanoMovieObj(mGetZoomAngle)
  246. end
  247.  
  248. on WIN_ExtractPathName pPathName
  249.   set tDelimiter to "\"
  250.   if pPathName contains tDelimiter then
  251.     set tCharPos to length(pPathName)
  252.     repeat while tCharPos >= 1
  253.       if char tCharPos of pPathName = tDelimiter then
  254.         return char 1 to tCharPos - 1 of pPathName
  255.       end if
  256.       set tCharPos to tCharPos - 1
  257.     end repeat
  258.     return EMPTY
  259.   else
  260.     return EMPTY
  261.   end if
  262. end
  263.